﻿Imports System.Data

Public Class CConsultaServicio

    'INDICES DE CAMPOS DE TABLA MMA_CAT_CONSULTA
    Public Const ID_CONSULTA      As Integer = 0
    Public Const NOMBRE_CONSULTA  As Integer = 1
    Public Const RUTA_ARCHIVO     As Integer = 2
    Public Const ULTIMA_FECHA     As Integer = 3
    Public Const CONSECUTIVO      As Integer = 4

    Public Function ObtieneConsultas() As List(Of CConsulta)
        Try
            Dim lstConsultas As New List(Of CConsulta)
            Dim dtDatos      As DataTable = CServicioLocalSQLServerDB.ObtieneConsultas(Nothing)
            Dim c            As CConsulta

            If dtDatos.Rows.Count > 0 Then
                For Each dt As DataRow In dtDatos.Rows
                    c = New CConsulta()
                    With c
                        .Id             = Convert.ToInt32(dt(ID_CONSULTA))
                        .NombreConsulta = Convert.ToString(dt(NOMBRE_CONSULTA))
                        .RutaArchivo    = Convert.ToString(dt(RUTA_ARCHIVO))
                        .UltimaFecha    = Convert.ToDateTime(dt(ULTIMA_FECHA))
                        .Consecutivo    = Convert.ToInt32(dt(CONSECUTIVO))
                    End With
                    lstConsultas.Add(c)
                    c = Nothing
                Next
            End If

            Return lstConsultas
        Catch ex As Exception
            Throw ex
        End Try
    End Function



    Public Function ObtieneResultadoConsulta(ByVal idConsulta As Integer, ByVal nombreArchivo As String) As DataTable
        Dim dtDatos       As New DataTable()
        Dim queryArchivo  As String
        Dim fileReader    As System.IO.StreamReader
        
        fileReader = My.Computer.FileSystem.OpenTextFileReader(nombreArchivo)
        Dim stringReader As String
        stringReader = fileReader.ReadLine()
        queryArchivo = CEncripcion.Decrypt(stringReader, "AJnx8d73")
        dtDatos = CServiciosMacrosSyBaseDB.ObtieneResultadoConsultas(queryArchivo)
        
        Return dtDatos

    End Function




    Public Function ObtieneNombreFichero(ByVal idConsulta As Integer) As String
        Dim nombreFichero As String    = String.Empty
        Dim dtDatos       As DataTable = CServicioLocalSQLServerDB.ObtieneConsultas(idConsulta)
       
        If dtDatos.Rows.Count > 0 Then
            
            For Each dt As DataRow In dtDatos.Rows
                nombreFichero = Convert.ToString(dt(NOMBRE_CONSULTA)).Replace(" ","_")
                nombreFichero = nombreFichero + "." + DateTime.Now.ToString("yyyyMMdd") + "_" + DateTime.Now.ToString("hhmmss")
                
                If Convert.ToDateTime(dt(ULTIMA_FECHA)).ToString("ddMMyyyy") = DateTime.Now.ToString("ddMMyyyy") Then
                     nombreFichero = nombreFichero + "_" + (Convert.ToInt32(dt(CONSECUTIVO)) + 1).ToString
                Else
                     nombreFichero = nombreFichero + "_1"
                End If
            Next

        End If
        Return nombreFichero
    End Function

    Public Sub ActualizaConsecutivo(ByVal idConsulta As Integer)
        CServicioLocalSQLServerDB.ActualizaConsecutivo(idConsulta)
    End Sub
    
End Class
